Electronically-based communications and intelligence-reproduction technologies have evolved dramatically since the early demonstrations of electronic signaling and allied technologies by Alexander Graham Bell, Thomas Alva Edison, Nikola Tesla, Guglielmo Marconi, Samuel Morse and many other contributors to this area. As these technologies have increased in sophistication, information-carrying capacity, rapidity of communications and other desirable characteristics, the areas of application for such have also increased, promoting efficiency in execution of business and other activities on an extremely broad scale.
With this increased information exchange capability also came increased vulnerability to systemic failures. The nature of electronic data exchange has increased to encompass more types of multimedia data, with concomitant increase in the amount of data being exchanged on a per-message as well as on per-user or per-client bases. As a result, message-handling tasks associated with information flow management have also increased in complexity. Further, the variety of types of data channels, each possessing somewhat unique characteristics and limitations, have increased as other aspects of message exchange have become more complex. In order to be able to maintain communications over long distances, even in the face of severe environmental disturbances, the former Defense Advanced Research Projects Agency developed a messaging tool initially called the “ARPA net” and presently known as the Internet or World Wide Web.
The initial ARPA net data exchange typically was limited to brief textual messaging. This information exchange modality was initially developed to facilitate robust data/information exchange, even in light of severe infrastructural damage, such as might be associated with a natural or man-made disaster. Such disasters tend to result in compounded difficulties because they usually also lead to overloading of the communications infrastructure. The resultant Internet communication mode is presently capable of handling huge amounts of data with great efficiency and is capable of message exchange when other systems are nonfunctional. Additionally, it is more convenient, in many ways, than some other communications tools, at least in part because the recipient has a greater degree of flexibility in choosing when to accept messages and when to respond. This is coupled with a high probability of extremely rapid reception by the intended recipient, even when the recipient is many thousands of miles away from the sender, and is often associated with fixed service price (i.e., no incremental per-message costs), color image as well as motion picture and mixed-media messaging transmission capabilities, providing an attractive ensemble of features for many applications. As a result, protocols were developed that presently provide an efficient, often near-real-time communications exchange medium supportive of a broad gamut of multimedia information.
This communications exchange may take place through a series of multiple different kinds of data transmission systems and may employ multiple data transmission paths over at least portions of an operative communications link. Furthermore, the nature of the transmission system may change during a data exchange or from one data exchange to another, resulting in need for routing and handling sophistication as well as flexibility. The capabilities provided by such varied yet robust types of data exchange have resulted in increasing application of broadband interconnectivity for heretofore unforeseen applications. For example, it is presently possible to rapidly transmit and/or access medical data such as X-rays, soft tissue images and other complex data structures along with textual or other forms of multimedia information to or from remote locations, facilitating potential for rapid and accurate diagnosis. Such finds application, for example, in treatment recommendations for one or more victims of a vehicular disaster, by one or more doctors who are not co-located with the victims and/or the imaging devices and/or one another and who may be in different cities or countries.
As messaging/handling data content increases, impetus is present to promote larger numbers of data packages being shipped—at least in part because range of applicability is facilitated. Conventional email systems for message/data handling tend to break each such data package into standard-size data elements or packets and then transmit each on a “fire and forget” basis. The received elements then must be collated to provide the data package as transmitted. This process may involve more complex strategies than simple serial concatenation of sequentially-transmitted or sequentially-received records. Framing, or inclusion of so-called header information (or a dataset comprising a set of headers) within each packet, facilitates such combination, with the framing or header information acting in a fashion analogous to the traditional “addressed envelope” familiar with respect to written postal communications.
As a result, in many data handling schema, information is included within each packet to facilitate both routing to common destination targets and later recombination of such packets via a series of “handshakes”, to provide notice that a portion is missing or to provide appropriate assurance regarding integrity level of post-handling data and/or any resultant delivered datagram. Inclusion of such information relies on a common protocol for determination of, and inclusion of, such information. Typical protocols use standard—but optionally variable-length blocks of data (e.g., 32 kilobytes) with a fixed upper bound for block size, and thus, ultimately, for message size.
Additionally, various media/methodologies and adaptations are employed to communicate/handle data packages or datagrams. Many of these related to email are variations on the hyper text transfer protocol (HTTP) approach or the simple mail transfer protocol (SMTP). However, the present system is known to still present some problems relating to congestion. For example, a long data structure requires more time to be handled than a shorter one, with one potential result being that the data handling system is not available for handling a short data structure while a longer data structure is being handled. This is known as the head-of-line blocking problem. There are thus increasing needs for methods and apparatus for efficiently routing data structures, which may include larger and more complex electronic data packages than in prior decades, via a gamut of types of data transmission paths.
Routers are the backbone of Internet traffic. They analyze packets to route them properly, efficiently and fairly. Fairness becomes a consideration when a router receives more packets per time interval than it can process, and the router is forced to drop some of the packets. Fairness determines which packets should be dropped. One conventional fairness algorithm considers whether each packet source is following a prescribed protocol. For example, sources are supposed to decrease traffic multiplicatively when congestion occurs and increase traffic only additively when congestion abates. The problem with implementing this fairness algorithm is that it is subject to a router's computation bound (i.e., the maximum number of per-packet computational steps a router can perform) and memory access bounds (i.e., maximum per-source packet history the router can maintain). One conventional system that has been developed for addressing this is known by the acronym “CHOKe”. That system drops packets from each client in proportion to the volume of packets sourced by that client. This is a simple system and is straightforward to implement, however, empirical observation shows that this may not lead to effective enforcement of the desired protocol. In part, this stems from the “distributed” nature of the “pain” inflicted on all of the clients, when only one of the clients may in fact be guilty of protocol violation.
There are thus needs that have increased over those of prior decades, and that will continue to increase, for efficiently routing data packages of increasing size and complexity.